<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="box">原型链继承</div>
</body>
<script>

function Person(name){
    console.log(name);
   this.name = '张三'
   this.age = 18
   this.dance = function(){
    console.log('我会跳舞');
   }
}


Person.prototype.sing = function(){
    console.log("我会唱歌");
}
Person.prototype.types = '哈哈哈哈哈'
let p = new Person()
console.log(p);


function Son(){
    this.name = '张小三'
}
//原型链继承的一个过程   把父类实例化的对象赋值给子类的原型
Son.prototype = new Person()
let son = new Son('刘德华')
let son1 = new Son('张学友')
console.log(son);
son.dance()
son.sing()


// 原型链可以继承 不仅可以继承实例上属性和方法还能继承父类原型上的属性和方法

// 原型链继承的缺点：  实例化出来的子类不能将参数传递给父类


</script>
</html>